﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO.Model;
using DAO.Bussiness.Repository;

namespace Restaurante
{
    public partial class menus : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            lblError.Text = "";
        }

        protected void btnAcepta_Click(object sender, EventArgs e)
        {
            MenuPrecargadoRepository mpr = new MenuPrecargadoRepository();
            Menu_Precargado mp = new Menu_Precargado();
            bool error = false;
            try
            {
                mp.Descripcion = txbDesc.Text;
                mp.Id_Plato = Convert.ToInt32(ddlPlatos.SelectedItem.Value);
                mp.Id_Bebida = Convert.ToInt32(ddlBebidas.SelectedItem.Value);
            }
            catch (Exception ex)
            {
                error = true;              
            }
            finally
            {
                if (!error)
                {
                    mpr.Add(mp);
                    mpr.Save();
                    CleanControl(this.Controls);
                    Response.Redirect("menus.aspx");
                }else lblError.Text = "Error durante la grabación !!!.";
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("home.aspx");
        }
        public void CleanControl(ControlCollection controles)
        {
            foreach (Control control in controles)
            {
                if (control is TextBox)
                    ((TextBox)control).Text = string.Empty;
                else if (control is DropDownList)
                    ((DropDownList)control).ClearSelection();
                else if (control is Calendar)
                    ((Calendar)control).SelectedDate = System.DateTime.Now;
                else if (control.HasControls())
                    //Esta linea detécta un Control que contenga otros Controles
                    //Así ningún control se quedará sin ser limpiado.
                    CleanControl(control.Controls);
            }
        }
    }
}